2008년08월31일 12번
[과목 구분 없음] 주어진 연도가 윤년인지를 판단하고자 한다. 연도가 400으로 나누어 떨어지거나, 4로 나누어떨어지면서 100으로 나누어 떨어지지 않은면 윤년이다. C언어에서 윤년을 계산하는 조건식으로 알맞은 것은?
- ① 연도%4!=0 &&연도%100==0 || 연도%400!=0
- ② 연도%4==0 &&연도%100!=0 || 연도%400==0
- ③ 연도%4!=0 &&연도%100==0 &&연도%400!=0
- ④ 연도%4==0 &&연도%100!=0 &&연도%400==0
(정답률: 52%)
문제 해설
정답은 "연도%4==0 && 연도%100!=0 || 연도%400==0" 이다.
이유는 다음과 같다.
- 연도가 400으로 나누어 떨어지면 윤년이다. 이를 표현하기 위해 "연도%400==0"을 사용한다.
- 연도가 100으로 나누어 떨어지면 윤년이 아니다. 이를 표현하기 위해 "연도%100!=0"을 사용한다.
- 연도가 4로 나누어 떨어지면서 100으로 나누어 떨어지지 않으면 윤년이다. 이를 표현하기 위해 "연도%4==0"을 사용한다.
따라서, "연도%4==0 && 연도%100!=0 || 연도%400==0"은 연도가 윤년인지 판단하는 조건식으로 알맞다.
이유는 다음과 같다.
- 연도가 400으로 나누어 떨어지면 윤년이다. 이를 표현하기 위해 "연도%400==0"을 사용한다.
- 연도가 100으로 나누어 떨어지면 윤년이 아니다. 이를 표현하기 위해 "연도%100!=0"을 사용한다.
- 연도가 4로 나누어 떨어지면서 100으로 나누어 떨어지지 않으면 윤년이다. 이를 표현하기 위해 "연도%4==0"을 사용한다.
따라서, "연도%4==0 && 연도%100!=0 || 연도%400==0"은 연도가 윤년인지 판단하는 조건식으로 알맞다.